$(function() {
	
	
	//加载表格树数据
	loadTreeGridData();
	
	sys.selectpicker({
        id : 'configType',
        url : rootPath + "/dict/listKeyMapEntites",
        param : {
            keyType : 'siteConfigType'
        },
        valueField : 'keyValue',
        textField : 'keyIntro'
    });
		
	// 定义列
	var columns = [
		{
				field : 'no',
				title : '序号',
				align : 'left',
				formatter : function(value, row, index) {
					var options = $("#siteConfigItemTable").bootstrapTable("getOptions");
					return options.pageSize * (options.pageNumber - 1) + index + 1;
				}
		},
		{
				field : 'moduleName',
				title : '所属模块 ',
				align : 'center'
		},
		{
				field : 'configTitle',
				title : '配置标题',
				align : 'center'
		},
		{
				field : 'configTypeName',
				title : '配置类型',
				align : 'center'
		},
		/**
		{
				field : 'configStatus',
				title : '状态 ',
				align : 'center',
				formatter : function(value, row, index){
					if (value == '0') {
						return "<span class='label label-danger'>停用</span>";
					} else {
						return "<span class='label label-success'>启用</span>";
					}
				}
		},
		*/
		{
			title : '排序号',
			field : 'sortNo',
			visible : false
		},
		{
			title : '排序',
			valign : 'middle',
			align : 'center',
			width : '170px',
			formatter : function(value, row, index) {
				return formatSort(value, row, index);
			}
		},
		{
			field : '#',
			title : '操作',
			width : '140px',
			align : 'center',
			formatter : function(value, row, index) {
					return "<div style='padding-top:0px;'>"
					/**
					+ "<a class='btn "+(row.configStatus == "0"?"btn-success":"btn-danger")+" btn-xs' href='javaScript:void(0);'onclick='toUpdateConfigStatus(\""
					+ row.id + "\",\"" + row.configStatus +"\",\"" + row.moduleId +"\")'>"+(row.configStatus == "0"?"启用":"停用")+"</a>"
					*/
					+ "<a class='btn btn-warning btn-xs' href='javaScript:void(0);' style='margin-left:10px;' onclick='toEditConfigItem(\""
					+ row.id + "\")'>编辑</a>"
					+ "<a class='btn btn-danger btn-xs' href='javaScript:void(0);' style='margin-left:10px;' onclick='toRemoveConfigItem(\""
					+ row.id + "\")'>删除</a></div>";
			}
		}];
			
			
	// 定义查询回调函数（查询参数在此设置）
	var queryParams = function(params) {
	
		var moduleId =  $("#moduleId").val();
		var configTitle =  $("#configTitle").val();
		var configType =  $("#configType").val();
		
		return {
			rows : params.limit, // 页面大小
			page : params.pageNumber, // 页码
			moduleId : moduleId,
			configTitle : configTitle,
			configType : configType
		};
	};
	var url = rootPath + "/siteConfigItem/listSiteConfigItemPage";
	sys.initTable('siteConfigItemTable', {
		url : url,
		queryParams : queryParams,
		columns : columns,
		striped : true,
		clickToSelect : true
	});

	// 查询
	$('#btnQuery').on('click', function() {
		sys.reloadTable('siteConfigItemTable');
	});
	
	// 清空
	$('#btnClear').on('click', function() {
		$("#moduleId").val("");
		$("#configTitle").val("");
		$("#configType").val("");
	});

	$('#btnAdd').on('click', function() {
		
		var moduleId = $("#moduleId").val();
		var termType = $("#termType").val();
		$("#layer_opt_status").val("");
		var index = showDialogUrl('新增配置', 1180,  620, 
			rootPath + '/siteConfigItem/toAddSiteConfigItem?moduleId='+moduleId+'&termType='+termType,
			function(){
				var layer_opt_status = $("#layer_opt_status").val();
				if (layer_opt_status == "1") {
					$("#siteConfigItemTable").bootstrapTable("refresh");
				}
			}
		);
		layer.full(index);
	});

});



/**
 * 排序
 * @Description do-something
 * @author xu_cc
 * @date 创建时间：2017年12月23日 上午11:45:28
 * @param value
 * @param row
 * @param index
 * @returns {String}
 */
function formatSort(value, row, index) {
	var options = $('#siteConfigItemTable').bootstrapTable("getOptions");
	var pageNumber = options.pageNumber;// 当前页
	var totalPages = options.totalPages;//总页数
	var lastRowIndex = $('#siteConfigItemTable').bootstrapTable('getData').length;
	var strHtml = "";
	if(pageNumber == 1 && index == 0) {
		// 第一行
		strHtml += "<a class='btn btn-primary btn-xs' onclick='sort( -1, "+row.id+")'><i class='fa fa-arrow-down'></i>下移</a>";
	} else if(pageNumber == totalPages && (lastRowIndex - 1) == index) {
		//最后一行
		strHtml += "<a class='btn btn-primary btn-xs' onclick='sort( 1, " + row.id+")'><i class='fa fa-arrow-up'></i>上移</a>";
		strHtml += "<a class='btn btn-danger btn-xs' onclick='sort( 0, " + row.id+")'>置顶</a>";
	} else {
		// 其他中间行
		strHtml += "<a class='btn btn-primary btn-xs' onclick='sort( 1, " + row.id+")'><i class='fa fa-arrow-up'></i>上移</a>";
		strHtml += "<a class='btn btn-primary btn-xs' onclick='sort( -1, " + row.id+")'><i class='fa fa-arrow-down'></i>下移</a>";
		strHtml += "<a class='btn btn-danger btn-xs' onclick='sort( 0, " + row.id+")'>置顶</a>";
	}
	return strHtml;
}


/**
 * 排序
 * 
 * @param direction
 *            排序移动方向 1 上移 0 置顶 -1 下移
 * @param id
 *            主键ID
 */
function sort(direction, id, parentId) {
	var moduleId = $("#moduleId").val();
	if(moduleId) {
		var url = rootPath + '/sort';
		var tableName = "eb_site_config_item";
		$.ajax({
			type : 'POST',
			url : url,
			data : {
				direction : direction,
				tableName : tableName,
				parentColumnName : 'MODULE_ID',
				parentId : moduleId,
				id : id
			},
			success : function(data) {
				if (data.code == '1') {
					var pageNumber = $("#siteConfigItemTable").bootstrapTable('getOptions').pageNumber;
					sys.reloadTable('siteConfigItemTable', {pageNumber: pageNumber});
					
					/** 重新刷新缓存*/
					$.ajax({
						type: 'POST',
						url: rootPath + "/siteConfigItem/refreshCache",
						async: true,
						data: {moduleId: moduleId},
						dataType: 'json',
						success: function(json) {
							console.log(json);
						}
					});
					
				}
			}
		});
	} else {
		showErr('请您先选择需要重新排序的模块！');
	}
}


// 启用  停用
function toUpdateConfigStatus(id, status, moduleId){
	var url = rootPath + "/siteConfigItem/saveConfigItemStatus";
	$.ajax({
		type: 'POST',
		url: url,
		async: true,
		data: {id: id,configStatus:status},
		dataType: 'json',
		success: function(json) {
			if (json.resultCode == "1") {
				showSuccess('操作成功');
				$("#siteConfigItemTable").bootstrapTable("refresh");
				/** 重新刷新缓存*/
				$.ajax({
					type: 'POST',
					url: rootPath + "/siteConfigItem/refreshCache",
					async: true,
					data: {moduleId: moduleId},
					dataType: 'json',
					success: function(json) {
						console.log(json);
					}
				});
			}
		}
	})
}


// 跳转编辑页面
function toEditConfigItem(id) {
	var termType = $("#termType").val();
	var index = showDialogUrl('编辑配置', 1180, 620, rootPath + '/siteConfigItem/toUpdateSiteConfigItem?id=' + id +"&termType=" + termType, 
		function() {
			var layer_opt_status = $("#layer_opt_status").val();
			if (layer_opt_status == "1") {
			$("#siteConfigItemTable").bootstrapTable("refresh");
		}
	});
	layer.full(index);
}


//删除配置项
function toRemoveConfigItem(id) {
	var url = rootPath + "/siteConfigItem/deleteConfigItem";
	showConfirm("您确定要删除该配置吗？", function() {
		$.ajax({
			type: 'POST',
			url: url,
			async: true,
			data: {id: id},
			dataType: 'json',
			success: function(json) {
				if (json.resultCode == "1") {
					showSuccess('删除成功');
					$("#siteConfigItemTable").bootstrapTable("refresh");
				}
			}
		});
	});
}

/**
 * 加载表格树数据
 */
var loadTreeGridData = function(){
	var url = rootPath + "/siteModule/listSiteModulePage";
	var moduleName = $('#moduleName').val();   
	$.ajax({
		type: 'POST',
		url: url,
		async: true,
		data: {moduleName: moduleName},
		dataType: 'json',
		success: function(data) {
			if (data) {
				initTreeGrid(data.rows);
			}
		}
	})
}


/**
 * 初始化表格树
 * @param rows 行JSON数据集合
 */
var initTreeGrid = function(rows) {
	var source = { 
		dataType : "json", 
		dataFields : [ 
		    { name : 'id', type : 'number' }, 
		    { name : 'moduleCode', type : 'string' }, 
		    { name : 'moduleName', type : 'string' }, 
		    { name : 'parentModuleId', type : 'number' }, 
		    { name : 'moduleStatus', type : 'string' }, 
		    { name : 'allowDelete', type : 'string' }, 
		    { name : 'intro', type : 'string' } ,
		    { name : 'termType', type : 'number' }, 
		],
		hierarchy : {
			keyDataField : { name : 'id' },
			parentDataField : { name : 'parentModuleId' }
		},
		id : 'id',
		localData : rows
	};

	var dataAdapter = new $.jqx.dataAdapter(source);
	// create Tree Grid
	$("#treeGrid").jqxTreeGrid(
	{
		width: '100%',
		columnsHeight: 40,
		autoRowHeight: true,
		columnsResize: true,
		altRows: true,
		source: dataAdapter,
		theme: 'office',
		sortable: false,
		columns: [
		   { text: '模块名称', dataField: 'moduleName', height:40,  width: '100%', align: "center" }
	    ]
	});
	
	$("#treeGrid").jqxTreeGrid('expandAll');
}

/**
 * treeGrid 表格单击，根据模块查询配置项
 */
$('#treeGrid').on('rowClick', function (event){
	var args = event.args;
	var row = args.row; 
	$("#moduleId").val(row.id);
	$("#termType").val(row.termType);
	$("#siteConfigItemTable").bootstrapTable("refresh");
});

// 跳转编辑页面
function toEdit(id) {
	window.location.href = rootPath + "/siteConfigItem/toUpdateSiteConfigItem?id=" + id;
}